<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">  

    <ui:composition template="/templates/templateCadastro.xhtml">

        <ui:define name="content">

            <p:growl showDetail="true" showSummary="true" autoUpdate="true" globalOnly="true" />

            <!-- INICIO CADASTRO -->

            <p:panel id="pnlCad" header="Cadastro de Ação" >

                <h:panelGrid id="grid" columns="2" cellspacing="10">

                    <h:outputLabel value="Nome:" style="font-weight: bold"/>

                    <h:panelGroup>
                        <p:inputText id="nome" label="Nome" required="true" requiredMessage="Campo obrigatório" 
                                        title="Nome da Ação" value="#{acaoBean.acao.nome}" size="50"/>
                        <p:message for="nome" />
                    </h:panelGroup>

                    <h:outputLabel value="Descrição:" />

                    <p:inputTextarea label="Descrição" cols="53" rows="3"
                                        title="Descrição da Ação. Opcional." value="#{acaoBean.acao.descricao}" />

                </h:panelGrid>

                <div style="text-align: center">

                    <p:commandButton value="Limpar" type="reset" icon="ui-icon-minusthick" />
                    <p:commandButton value="Cadastrar" actionListener="#{acaoBean.cadastrar()}" rendered="#{acaoBean.cadastro || acaoBean.listagem}" icon="ui-icon-disk" update="@form" />
                    <p:commandButton value="Alterar" actionListener="#{acaoBean.editar()}" rendered="#{acaoBean.edicao}" icon="ui-icon-pencil" update="@form" />
                    <p:commandButton value="Cancelar" action="#{acaoBean.cancelar}" immediate="true" icon="ui-icon-cancel" />

                </div>

            </p:panel>

            <!-- FIM CADASTRO -->

            <br />

            <!-- INICIO LISTAGEM -->

            <h:panelGroup id="tabela" >

                <p:dataTable id="basic" var="item" value="#{acaoBean.acoes}" emptyMessage="Nenhuma ação cadastrada até o momento"
                                paginator="#{acaoBean.paginator}" rows="#{acaoBean.rowNumber}" >

                    <f:facet name="header">
                        Ações
                    </f:facet>

                    <p:column headerText="Nome" sortBy="#{item.nome}" style="width: 45%">
                        <h:outputText value="#{item.nome}" />
                    </p:column>

                    <p:column headerText="Descrição" sortBy="#{item.descricao}" style="width: 45%">
                        <h:outputText value="#{item.descricao}" />
                    </p:column>

                    <p:column headerText="Ação" style="text-align: center; width: 10%">
                        <h:commandButton id="edit" image="/resources/images/edit.png" actionListener="#{acaoBean.prepararEditar()}" title="Clique para alterar">
                            <f:setPropertyActionListener value="#{item}" target="#{acaoBean.acao}" />
                            <f:ajax execute="@this" render="@form" />
                        </h:commandButton>
                        <p:tooltip for="edit" showEffect="slide" hideEffect="slide" />
                        &nbsp;
                        <h:commandButton id="remove" image="/resources/images/remove.png" action="#{acaoBean.excluir()}" immediate="true" title="Clique para excluir">
                            <f:setPropertyActionListener value="#{item}" target="#{acaoBean.acao}" />
                        </h:commandButton>
                        <p:tooltip for="remove" showEffect="slide" hideEffect="slide" />
                    </p:column>

                </p:dataTable>

            </h:panelGroup>

            <!-- FIM LISTAGEM -->

        </ui:define>

    </ui:composition>

</html>